#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :1.8 tcp服务器（优化版本）.py
# @Time      :2020/7/10 9:17
# @Author    :亮亮
# @说明       :优化tcp服务端
# @总结       :
import socket


def main():
    # 创建套接字
    tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 绑定本地信息
    server_addr = ("", 9090)
    tcp_server.bind(server_addr)

    # 将套接字改为监听模式
    tcp_server.listen(128)

    while True:

        # 等待客户端的链接
        print("----正在等待用户接入----")
        new_client, client_addr = tcp_server.accept()
        print("----用户已接入----")
        new_client.send("----你已链接到服务器----".encode("utf-8"))

        while True:
            # 接收数据
            recv_data = new_client.recvfrom(1024)
            recv_content = recv_data[0].decode("utf-8")
            recv_ip = client_addr[0]
            recv_port = str(client_addr[1])
            # print("用户{},使用端口{},发送如下内容：\n{}".format(recv_ip, recv_port, recv_content))

            # 判断结束此次链接
            if recv_content == "close":
                print("已经结束本次服务")
                break

        # 关闭本次服务
        new_client.close()

    # 关闭服务端程序
    tcp_server.close()


if __name__ == '__main__':
    main()
